(function() { //闭包
	function load_script(xyUrl, callback) {
		var head = document.getElementsByTagName('head')[0];
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.src = xyUrl;
		//借鉴了jQuery的script跨域方法
		script.onload = script.onreadystatechange = function() {
			if( (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) {
				callback && callback();
				// Handle memory leak in IE
				script.onload = script.onreadystatechange = null;
				if (head && script.parentNode) {
					head.removeChild(script);
				}
			}
		};
		// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
		head.insertBefore(script, head.firstChild);
	}
	function translate(point, type, callback) {
		var callbackName = 'cbk_' + Math.round(Math.random() * 10000); //随机函数名
		var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from=" + type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName;
		//动态创建script标签
		load_script(xyUrl);
		BMap.Convertor[callbackName] = function(xyResult) {
			delete BMap.Convertor[callbackName]; //调用完需要删除改函数
			var point = new BMap.Point(xyResult.x, xyResult.y);
			callback && callback(point);
		}
	}

	window.BMap = window.BMap || {};
	BMap.Convertor = {};
	BMap.Convertor.translate = translate;
})();